From 763bf27d9c5867328ab40872b3aaff77bc874769 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 28 Jul 2015 22:47:07 -0400 Subject: [PATCH] gtk3-demo: Add another overlay demo --- demos/gtk-demo/Makefile.am | 1 + demos/gtk-demo/decor1.png | Bin 0 -> 17170 bytes demos/gtk-demo/decor2.png | Bin 0 -> 17248 bytes demos/gtk-demo/demo.gresource.xml | 5 ++ demos/gtk-demo/overlay.c | 4 +- demos/gtk-demo/overlay2.c | 105 ++++++++++++++++++++++++++++++ 6 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 demos/gtk-demo/decor1.png create mode 100644 demos/gtk-demo/decor2.png create mode 100644 demos/gtk-demo/overlay2.c diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am index f03f1c6873..2067229613 100644 --- a/demos/gtk-demo/Makefile.am +++ b/demos/gtk-demo/Makefile.am @@ -43,6 +43,7 @@ demos_base = \ offscreen_window.c \ offscreen_window2.c \ overlay.c \ + overlay2.c \ panes.c \ pickers.c \ pixbufs.c \ diff --git a/demos/gtk-demo/decor1.png b/demos/gtk-demo/decor1.png new file mode 100644 index 0000000000000000000000000000000000000000..61d2edc1c466b9b7c0852a9125c50979e9b80d76 GIT binary patch literal 17170 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 D&d3=t literal 0 HcmV?d00001 diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml index 2ac7dd508d..ed879ccd90 100644 --- a/demos/gtk-demo/demo.gresource.xml +++ b/demos/gtk-demo/demo.gresource.xml @@ -149,6 +149,7 @@ offscreen_window.c offscreen_window2.c overlay.c + overlay2.c pagesetup.c panes.c pickers.c @@ -196,4 +197,8 @@ filtermodel.ui + + decor1.png + decor2.png + diff --git a/demos/gtk-demo/overlay.c b/demos/gtk-demo/overlay.c index f6d67edd0a..5861e11290 100644 --- a/demos/gtk-demo/overlay.c +++ b/demos/gtk-demo/overlay.c @@ -1,4 +1,4 @@ -/* Overlay +/* Overlay/Interactive Overlay * * Shows widgets in static positions over a main widget. * @@ -33,7 +33,7 @@ do_overlay (GtkWidget *do_widget) window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 500, 510); - gtk_window_set_title (GTK_WINDOW (window), "Overlay"); + gtk_window_set_title (GTK_WINDOW (window), "Interactive Overlay"); overlay = gtk_overlay_new (); grid = gtk_grid_new (); diff --git a/demos/gtk-demo/overlay2.c b/demos/gtk-demo/overlay2.c new file mode 100644 index 0000000000..a119c92ca7 --- /dev/null +++ b/demos/gtk-demo/overlay2.c @@ -0,0 +1,105 @@ +/* Overlay/Decorative Overlay + * + * Another example of an overlay with some decorative + * and some interactive controls. + */ + +#include + +static GtkTextTag *tag; + +static void +margin_changed (GtkAdjustment *adjustment, + GtkTextView *text) +{ + gint value; + + value = (gint)gtk_adjustment_get_value (adjustment); + gtk_text_view_set_left_margin (GTK_TEXT_VIEW (text), value); + g_object_set (tag, "pixels-above-lines", value, NULL); +} + +GtkWidget * +do_overlay2 (GtkWidget *do_widget) +{ + static GtkWidget *window = NULL; + + if (!window) + { + GtkWidget *overlay; + GtkWidget *sw; + GtkWidget *text; + GtkWidget *image; + GtkWidget *scale; + GtkTextBuffer *buffer; + GtkTextIter start, end; + GtkAdjustment *adjustment; + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_default_size (GTK_WINDOW (window), 500, 510); + gtk_window_set_title (GTK_WINDOW (window), "Decorative Overlay"); + + overlay = gtk_overlay_new (); + sw = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + text = gtk_text_view_new (); + buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); + + gtk_text_buffer_set_text (buffer, "Dear diary...", -1); + + tag = gtk_text_buffer_create_tag (buffer, "top-margin", + "pixels-above-lines", 0, + NULL); + gtk_text_buffer_get_start_iter (buffer, &start); + end = start; + gtk_text_iter_forward_word_end (&end); + gtk_text_buffer_apply_tag (buffer, tag, &start, &end); + + gtk_container_add (GTK_CONTAINER (window), overlay); + gtk_container_add (GTK_CONTAINER (overlay), sw); + gtk_container_add (GTK_CONTAINER (sw), text); + + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_widget_destroyed), &window); + + image = gtk_image_new_from_resource ("/overlay2/decor1.png"); + gtk_overlay_add_overlay (GTK_OVERLAY (overlay), image); + gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), image, TRUE); + gtk_widget_set_halign (image, GTK_ALIGN_START); + gtk_widget_set_valign (image, GTK_ALIGN_START); + + image = gtk_image_new_from_resource ("/overlay2/decor2.png"); + gtk_overlay_add_overlay (GTK_OVERLAY (overlay), image); + gtk_overlay_set_overlay_pass_through (GTK_OVERLAY (overlay), image, TRUE); + gtk_widget_set_halign (image, GTK_ALIGN_END); + gtk_widget_set_valign (image, GTK_ALIGN_END); + + adjustment = gtk_adjustment_new (0, 0, 100, 1, 1, 0); + g_signal_connect (adjustment, "value-changed", + G_CALLBACK (margin_changed), text); + + scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, adjustment); + gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE); + gtk_widget_set_size_request (scale, 120, -1); + gtk_widget_set_margin_start (scale, 20); + gtk_widget_set_margin_end (scale, 20); + gtk_widget_set_margin_bottom (scale, 20); + gtk_overlay_add_overlay (GTK_OVERLAY (overlay), scale); + gtk_widget_set_halign (scale, GTK_ALIGN_START); + gtk_widget_set_valign (scale, GTK_ALIGN_END); + gtk_widget_set_tooltip_text (scale, "Margin"); + + gtk_adjustment_set_value (adjustment, 100); + + gtk_widget_show_all (overlay); + } + + if (!gtk_widget_get_visible (window)) + gtk_widget_show (window); + else + gtk_widget_destroy (window); + + return window; +} -- 2.30.2